/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.filter;

import ksvg.core.SVGFilter;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
import tk.eigh.ksvg.types.SVGNumber;

/**
 *
 * @author nt
 */
@JSFComponent(name = "svg:Composite",
type = "tk.eigh.svg.Composite",
family = "filter.Composite",
clazz = "ksvg.filter.Composite",
tagClass = "ksvg.tags.filter.CompositeTag",
defaultRendererType = "filter.SVGCompositeRenderer",
desc="This filter performs the combination of the two input images pixel-wise in image space using one of the Porter-Duff [<a href=\"http://www.w3.org/TR/SVG/refs.html#ref-PORTERDUFF\">PORTERDUFF</a>] compositing operations: over, in, atop, out, xor [<a href=\"http://www.w3.org/TR/SVG/refs.html#ref-SVG-COMPOSITING\">SVG-COMPOSITING</a>]. Additionally, a component-wise arithmetic operation (with the result clamped between [0..1]) can be applied.")
public abstract class AbstractComposite extends SVGFilter implements _SecondIn{

    /**
     * operator = "over | in | out | atop | xor | arithmetic"<br/> The
     * compositing operation that is to be performed. All of the ‘operator’
     * types except arithmetic match the corresponding operation as described in
     * [<a
     * href="http://www.w3.org/TR/SVG/refs.html#ref-PORTERDUFF">PORTERDUFF</a>].
     * The arithmetic operator is described above. If attribute ‘operator’ is
     * not specified, then the effect is as if a value of over were
     * specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract String getOperator();

    /**
     * k1 = "&lt;number&gt;"<br/> Only applicable if operator="arithmetic". If
     * the attribute is not specified, the effect is as if a value of 0 were
     * specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getK1();

    /**
     * k2 = "&lt;number&gt;"<br/> Only applicable if operator="arithmetic". If
     * the attribute is not specified, the effect is as if a value of 0 were
     * specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getK2();

    /**
     * k3 = "&lt;number&gt;"<br/> Only applicable if operator="arithmetic". If
     * the attribute is not specified, the effect is as if a value of 0 were
     * specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getK3();

    /**
     * k4 = "&lt;number&gt;"<br/> Only applicable if operator="arithmetic". If
     * the attribute is not specified, the effect is as if a value of 0 were
     * specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getK4();
}